The existing search engines recommend keywords based on the meaning of the search term entered by the user. For example, if a user enters the term mushroom, Baidu displays the following keywords: “mushrooms recipes”, “mushroom and rape”, “mushroom chicken stew”; while Google displays the following keywords: “Mushroom Street”, “mushroom.com”, “mushroom soup,” and so on. All these keywords are selected based on its meaning.
The existing methods of recommending keywords presume that the user knows exactly what he is searching, and recommend keywords similar in meaning to the search term entered by the user. However, if the user cannot accurately describe what he is searching for, or cannot provide a good search term, the user will have to manually filter through the search result to modify the search term. For example, if a user wants to search for articles on the effects of modifying codes, and searches for “effects modifying codes,” the search result will includes articles on “effects” or “modifying codes.” In reviewing the search results, the user may realize that the relevant academic term is “change centric testing”, and search for “change centric testing.” The terms “effects modifying codes” and “change centric test” are not semantically similar, and the prior art methods will not be able to make the connection.